package exam.niuke;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

/**
 * 明明的随机数
 * <p>
 * 明明生成了N个1到500之间的随机整数。请你删去其中重复的数字，
 * 即相同的数字只保留一个，把其余相同的数去掉，然后再把这些数从小到大排序，按照排好的顺序输出。
 * <p>
 * 数据范围： 1 - 1000  ，输入的数字大小满足 1-500
 * <p>
 * 第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数，代表明明生成的随机数。
 * 具体格式可以参考下面的"示例"。
 */
public class ExamHJ3 {
    public static void main(String[] args) {
        test02();
    }

    /**
     * 普通的循环+判断
     */
    public static void test01() {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int length = in.nextInt();
        ArrayList<Integer> list = new ArrayList<>();

        for (int i = 0; i < length; i++) {
            int num = in.nextInt();
            if (!list.contains(num)) {
                list.add(num);
            }
        }

        Collections.sort(list);
        list.forEach(System.out::println);
        in.close();
    }

    /**
     * 利用set的特性
     */
    public static void test02() {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int length = in.nextInt();
        Set<Integer> set = new HashSet<>();

        for (int i = 0; i < length; i++) {
            int num = in.nextInt();
            set.add(num);
        }

        List<Integer> list = new ArrayList<>(set);

        Collections.sort(list);
        list.forEach(System.out::println);
        in.close();
    }

    /**
     * 原题答案，优化到看不懂了
     */
    public static void test03() throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while ((str = bf.readLine()) != null) {
            boolean[] stu = new boolean[1001];
            StringBuilder sb = new StringBuilder();
            int n = Integer.parseInt(str);
            for (int i = 0; i < n; i++)
                stu[Integer.parseInt(bf.readLine())] = true;
            for (int i = 0; i < 1001; i++)
                if (stu[i])
                    sb.append(i).append("\n");
            sb.deleteCharAt(sb.length() - 1);
            System.out.println(sb.toString());
        }
    }
}
